home *** CD-ROM | disk | FTP | other *** search
- Bzip2 Howto
- David Fetter dfetter@best.com <mailto:dfetter@best.com>
- v1.92 18 sierpnia 1998
- Wersja polska: Krzysztof P. Jasiutowicz kpjas@priv.onet.pl
- v0.99, 28 sierpnia 1998
-
-
- Ten tekst wyja╢nia jak u┐ywaµ programu do kompresji bzip2. Lokalna
- wersja tego tekstu w sgml-u jest dostΩpna tu tu <Bzip2-HOWTO.sgml>, a
- "autor-ytatywna" pod tym adresem tu <http://www.best.com/~dfet¡
- ter/Bzip2-HOWTO/Bzip2-HOWTO.sgml>. Dokument ten zosta│ napisany w
- standardzie ISO-8859-2.
- ______________________________________________________________________
-
- Table of Contents
-
-
- 1. WstΩp
-
- 1.1 Revision History
- 1.1.1 v1.92
- 1.1.2 v1.91
- 1.1.3 v1.9
- 1.1.4 v1.8
- 1.1.5 v1.7
- 1.1.6 v1.6
- 1.1.7 v1.5
- 1.1.8 v1.4
- 1.1.9 v1.3
- 1.1.10 v1.2
- 1.1.11 v1.1
- 1.1.12 v1.0
-
- 2. Jak zdobyµ bzip2
-
- 2.1 Bzip2-HOWTO w twoim jΩzyku
- 2.2 Jak zdobyµ prekompilowane binaria bzip2-a
- 2.3 Jak zdobyµ ╝r≤d│a bzip2-a
- 2.4 Kompilacja bzip2-a dla twojej maszyny
-
- 3. U┐ywanie bzip2
-
- 4. U┐ywanie bzip2 z tar-em
-
- 4.1 Naj│atwiejsza do zrobienia:
- 4.2 úatwa do zrobienia, do╢µ │atwa w u┐yciu, nie trzba mieµ uprawnie± root-a:
- 4.3 Te┐ │atwa do zrobienia, ale wymaga dostΩpu jako root.
-
- 5. U┐ywanie bzip2 z less-em
-
- 6. U┐ywanie bzip2 z emacs-em
-
- 6.1 Zmaina emacs-a dla wszystkich:
- 6.2 Zmiana emacs-a dla pojedy±czego u┐ytkownika:
-
- 7. U┐ywanie bzip2-a z wu-ftpd
-
- 8. U┐ycie bzip2 z grep-em
-
- 9. U┐ywanie bzip2-a z Netscape-m pod X-ami.
-
- 10. U┐ycie bzip2-a do rekompresji plik≤w skompresowanych w innych formatach
-
-
-
-
- ______________________________________________________________________
-
- 1. WstΩp
-
- Bzip2 to superowy nowy algorytm kompresji danych. Og≤lnie rzecz
- bior▒c tworzy pliki, kt≤re s▒ 60-70% mniejsze od takich samych plik≤w
- spakowanych gzip-em.
-
-
- Ten dokument opisze kilka typowych zastosowa± bzip2-a.
-
-
- Przysz│e wersje tego dokumentu bΩd▒ dotyczy│y planowanej bzip2
- library kt≤r▒ autor bzip2-a, Julian Seward
- <mailto:Julian_Seward@muraroa.demon.co.uk> opisuje nastΩpuj▒co:
-
-
- PracujΩ nad nastΩpn▒ wersj▒ bzip2-a, kt≤ra bΩdzie u┐ywaµ tego samego
- formatu pliku .bz2; g│≤wn▒ nowo╢ci▒ bΩdzie biblioteka podobna do zlib
- s│u┐▒ca do odczytywania i zapisu danych w tym formacie z poziomu programu.
-
-
-
-
- Przysz│e wersje tego dokumentu mog▒ tak┐e zawieraµ podsumowanie
- dyskusji nad tym czy (i jak) bzip2 powinno byµ zastosowane w j▒drze
- Linux-a.
-
-
- 1.1. Revision History
-
- 1.1.1. v1.92
-
- Zaktualizowa│em rozdzia│ ``Pobieranie binari≤w bzip2'', doda│em
- S.u.S.E.
-
-
- 1.1.2. v1.91
-
- Poprawi│em b│▒d w pisowni i poprawi│em kilka idiom≤w shell-a w
- ``rozdziale o u┐ywaniu bzip2-a z tar-em''. PodziΩkowania dla
- Alessandro Rubini za nie.
-
-
- Poprawi│em aby narzΩdzie buzzit nie [to stomp] oryginalnego archiwum
- bzip2-a.
-
-
- Doda│em bgrep, narzΩdzie podobne do zgrep-a.
-
-
- 1.1.3. v1.9
-
- Poprawi│em problem z gcc 2.7.*. PodziΩkowanie dla Ulrika Dickow-a za
- wskazanie go.
-
-
- Doda│em elegancki spos≤b Leonard-a Jean-Marc-a pos│ugiwania siΩ tar-
- em.
-
-
- Doda│em szwedzkie t│umaczenie Linus-a ├kerlund-a.
-
-
- Poprawi│em rozdzia│ o wu-ftpd np. sugestii Arnaud Launay-a.
-
- Przenios│em t│umaczenia ich odpowiednich rozdzia│≤w.
-
-
- 1.1.4. v1.8
-
- Wstawi│em buzzit i tar.diff do sgml-a tam gdzie ich miejsceg.
- Poprawi│em interpunkcjΩ i formatowanie. PodziΩkowania dla Arnaud
- Launay za jego pomoc w poprawianiu mojej w│asnej wersji. :-)
-
-
- Porzuci│em xv project na razie z powodu braku wiΩkszego
- zainteresowania.
-
-
- Wspomnia│em o tipsach w przysz│ych wersjach tego dokumentu.
-
-
- 1.1.5. v1.7
-
- Doda│em aplikacjΩ buzzit. Poprawi│em patch do na│o┐enia na gnu tar.
-
-
- 1.1.6. v1.6
-
- Doda│em tip TenThumbs-a dot. Netscape.
-
-
- Tak┐e zmieni│em lesspipe.sh dziΩki jego sugestii. Powinien teraz
- lepiej dzia│aµ.
-
-
- 1.1.7. v1.5
-
- Doda│em francuskie t│umaczenie Arnaud Launay-a, i jego plik wu-ftpd.
-
-
- 1.1.8. v1.4
-
- Doda│em japo±skie t│umaczenie Tetsu Isaji-ego.
-
-
- 1.1.9. v1.3
-
- Doda│em plik Ulrik Dickow-a .emacs do emacs-a 19.30 lub wy┐szej
- wersji.
-
-
- (tak┐e poprawi│em patch jka-compr.el do emacs-a dziΩki jego sugestii.
- Ojej! Bzip2 nie ma jeszcze(?) flagi "append".)
-
-
- 1.1.10. v1.2
-
- Zmienilem patch do emacs-a aby automagicznie rozpoznawa│ pliki .bz2.
-
-
- 1.1.11. v1.1
-
- Doda│em patch dla emacs-a.
-
-
- 1.1.12. v1.0
-
- Runda 1.
-
-
- 2. Jak zdobyµ bzip2
-
- Home page Bzip2-a znajduje siΩ na Home site w Wielkiej Brytanii
- <http://www.muraroa.demon.co.uk/>. Mirror site w U.S.A jest tu
- <http://www.digistar.com/bzip2/index.html>. Mo┐na te┐ znale╝µ go na
- site-cie FTP Red Hat-a tu <ftp://ftp.redhat.com/pub/contrib>.
-
-
- 2.1. Bzip2-HOWTO w twoim jΩzyku
-
- Osoby pos│uguj▒ce siΩ jΩzykiem francuskim mog▒ skierowaµ siΩ do
- francuskich dokument≤w Arnaud Launay-a. Wersja WWW jest tu
- <http://www.freenix.fr/linux/HOWTO/mini/Bzip2.html>, a ftp mo┐na u┐yµ
- tu <ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO/mini/Bzip2.gz> Z
- Arnaud mo┐na skontaktowaµ siΩ poczt▒ elektroniczn▒ pod tym adresem
- <mailto:zoro@mygale.org>
-
-
- Osoby pos│uguj▒ce siΩ jΩzykiem japo±skim mog▒ skierowaµ siΩ do
- japo±skich dokument≤w Tetsu Isaji tu <http://jf.gee.kyoto-
- u.ac.jp/JF/JF.html>. Z Isaji mo┐na skotaktowaµ siΩ na jego stronie
- WWW <http://www2s.biglobe.ne.jp/~kaien/>, lub poczt▒ elektroniczn▒ pod
- tym adresem. <mailto:isaji@mxu.meshnet.or.jp>
-
-
- Osoby pos│uguj▒ce siΩ jΩzykiem szwedzkim mog▒ skierowaµ siΩ do
- szwedzkich Linus-a ├kerlund-a tu
- <http://user.tninet.se/~uxm165t/linux_doc.html>. Z Linus-em mo┐na siΩ
- skontaktowaµ poczt▒ elektroniczn▒ pod tym adresem.
- <mailto:uxm165t@tninet.se>
-
-
- 2.2. Jak zdobyµ prekompilowane binaria bzip2-a
-
- Zobacz Home site-y.
-
-
- Binarium Debian Intel jest
- <ftp://ftp.debian.org/debian/dists/stable/main/binary-
- i386/utils/bzip2_0.1pl2-5.deb name=>>.
-
-
- Binarium alpha Red Hat-a jest tu
- <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/alpha/RedHat/RPMS/bzip2-0.1pl2-1.alpha.rpm>.
-
-
- Binarium Intel Red Hat-a jest tu
- <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/RedHat/RPMS/bzip2-0.1pl2-1.i386.rpm>.
-
-
- Binarium SPARC Red Hat-a jest tu
- <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/sparc/RedHat/RPMS/bzip2-0.1pl2-1.sparc.rpm>.
-
-
- Binarium Intel Slackware jest tu
- <ftp://www.cdrom.com/pub/linux/slackware-3.5/slakware/a1/bzip2.tgz>.
-
-
- Binarium Intel S.u.S.E jest tu <ftp://ftp.suse.com/pub/SuSE-
- Linux/5.2/suse/ap1/bzip.rpm>.
-
- Wy┐ej wymienione s▒ tak┐e dostΩpne w analogicznuch miejscach r≤┐nych
- lustrzanych site-≤w.
-
-
-
- 2.3. Jak zdobyµ ╝r≤d│a bzip2-a
-
- Znajduj▒ siΩ na oficjalnych site-ach (zobacz w ``Jak zdobyµ Bzip2''
- gdzie, albo Red Hat ma je tu
- <ftp://ftp.redhat.com/pub/contrib/SRPMS/bzip2-0.1pl2-1.src.rpm>).
-
-
- 2.4. Kompilacja bzip2-a dla twojej maszyny
-
- Je╢li masz gcc 2.7.*, zmie± linijkΩ kt≤ra brzmi
-
-
- CFLAGS = -O3 -fomit-frame-pointer -funroll-loops
-
-
-
-
- na
-
-
- CFLAGS = -O2 -fomit-frame-pointer
-
-
-
-
- to jest, zamie± -O3 na -O2 i pomi± -funroll-loops. You may also wish
- to add any -m* flags (like -m486, for example) you use when compiling
- kernels.
-
- UsuniΩcie -funroll-loops jest najistotniejsz▒ czΩ╢ci▒, poniewa┐ mo┐e
- to spowodowaµ wiele gcc 2.7-≤w bΩdzie generowa│o nieprawid│owy kod, a
- wszystkie gcc 2.7-y bΩd▒ wiΩkszy i wolniejszy kod wynikowy. Dla
- innych kompilator≤w (lcc, egcs, gcc 2.8.x) standartowe CFLAGS s▒ w
- porz▒dku.
-
- Potem, po prostu make i zainstaluj wg README.
-
-
- 3. U┐ywanie bzip2
-
- Przeczytaj Wspanaia│▒ StronΩ PodrΩcznika Systemowego :)
-
-
- 4. U┐ywanie bzip2 z tar-em
-
- Poni┐ej s▒ opisane trzy metody u┐ywania bzip2 z tar-em, a mianowicie
-
- 4.1. Naj│atwiejsza do zrobienia:
-
- Ta metoda nie wyamga wcale ┐adnych zmian. Aby od-tar-owaµ bzip2-owane
- archiwum tar-owe, foo.tar.bz2 w aktualnym katalogu, wykonaj
-
-
- /path/to/bzip2 -cd foo.tar.bz2 | tar xf -
-
-
-
-
- To dzia│a, ale mo┐e byµ wnerwiaj▒ce je╢li wypisuje siΩ to zbyt czΩsto.
-
-
- 4.2. úatwa do zrobienia, do╢µ │atwa w u┐yciu, nie trzba mieµ
- uprawnie± root-a:
-
- DziΩki dla Leonard Jean-Marc <mailto:leonard@sct1.is.belgacom.be> za
- ten tip. DziΩki tak┐e dla Alessandro Rubini
- <mailto:rubini@morgana.systemy.it> za wprawadzenie r≤┐nic
- specyficznych dla csh.
-
-
- W swoim .bashrc, mo┐esz wstawiµ tak▒ linijkΩ :
-
-
- alias btar='tar --use-compress-program /usr/local/bin/bzip2 '
-
-
-
-
-
- W .tcshrc, lub .cshrc, analogiczna linijka wygl▒da tak:
-
-
- alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
-
-
-
-
-
- 4.3. Te┐ │atwa do zrobienia, ale wymaga dostΩpu jako root.
-
- Na│≤┐ poni┐szy patch na gnu tar 1.12 w nastΩpuj▒cy spos≤b:
-
-
- cd tar-1.12/src; patch < /path/to/tar.diff
-
-
-
-
- skompiluj go, i zainstaluj go, i wszystko ju┐ gotowe do dzia│ania.
- Upewnij siΩ ze zar≤wno tar jak i bzip2 s▒ w twojej $PATH poprzez
- "which tar" i "which bzip2." Aby u┐yµ nowego tar-a, po prostu zr≤b
-
-
- tar xyf foo.tar.bz2
-
-
-
-
- aby zdekompresowaµ plik.
-
- Aby utworzyµ nowe archiwum, podobnie zr≤b:
-
-
- tar cyf foo.tar.bz2 file1 file2 file3...directory1 directory2...
-
-
-
-
- A oto patch:
-
-
-
-
-
-
-
-
-
-
-
-
-
- *** tar.c Thu Jun 11 00:09:23 1998
- --- tar.c.new Thu Jun 11 00:14:24 1998
- ***************
- *** 196,201 ****
- --- 196,203 ----
- {"block-number", no_argument, NULL, 'R'},
- {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
- {"blocking-factor", required_argument, NULL, 'b'},
- + {"bzip2", required_argument, NULL, 'y'},
- + {"bunzip2", required_argument, NULL, 'y'},
- {"catenate", no_argument, NULL, 'A'},
- {"checkpoint", no_argument, _option, 1},
- {"compare", no_argument, NULL, 'd'},
- ***************
- *** 372,377 ****
- --- 374,380 ----
- PATTERN at list/extract time, a globbing PATTERN\n\
- -o, --old-archive, --portability write a V7 format archive\n\
- --posix write a POSIX conformant archive\n\
- + -y, --bzip2, --bunzip2 filter the archive through bzip2\n\
- -z, --gzip, --ungzip filter the archive through gzip\n\
- -Z, --compress, --uncompress filter the archive through compress\n\
- --use-compress-program=PROG filter through PROG (must accept -d)\n"),
- ***************
- *** 448,454 ****
- Y per-block gzip compression */
-
- #define OPTION_STRING \
- ! "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
-
- static void
- set_subcommand_option (enum subcommand subcommand)
- --- 451,457 ----
- Y per-block gzip compression */
-
- #define OPTION_STRING \
- ! "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxyz"
-
- static void
- set_subcommand_option (enum subcommand subcommand)
- ***************
- *** 805,810 ****
- --- 808,817 ----
- case 'X':
- exclude_option = 1;
- add_exclude_file (optarg);
- + break;
- +
- + case 'y':
- + set_use_compress_program_option ("bzip2");
- break;
-
- case 'z':
-
-
-
-
- 5. U┐ywanie bzip2 z less-em
-
- Aby dekompresowaµ pliki bzip2 w locie, tj. aby m≤c u┐ywaµ less-a do
- czytania ich bez wcze╢niejszego bunzip2-owania ich, nale┐y zrobiµ
- lesspipe.sh (man less) w ten spos≤b:
-
-
-
-
- #!/bin/sh
- # To jest preprocessor dla 'less-a'. Jest on u┐ywany, gdy ta zmienna
- # ╢rodowiskowa jest ustawiona: LESSOPEN="|lesspipe.sh %s"
-
- case "$1" in
- *.tar) tar tvvf $1 2>/dev/null ;; # Ogl▒daj zawarto╢µ r≤┐nych plik≤w tar-owych
- *.tgz) tar tzvvf $1 2>/dev/null ;;
- # Dzia│a dla niezmodyfikowanej wersji tar-a
- *.tar.bz2) bzip2 -cd $1 $1 2>/dev/null | tar tzvvf - ;;
- # Dzia│a z spatchowan▒ wersj▒ tar-a
- # *.tar.bz2) tyvvf $1 2>/dev/null ;;
- *.tar.gz) tar tzvvf $1 2>/dev/null ;;
- *.tar.Z) tar tzvvf $1 2>/dev/null ;;
- *.tar.z) tar tzvvf $1 2>/dev/null ;;
- *.bz2) bzip2 -dc $1 2>/dev/null ;; # Ogl▒daj spakowane pliki
- *.Z) gzip -dc $1 2>/dev/null ;;
- *.z) gzip -dc $1 2>/dev/null ;;
- *.gz) gzip -dc $1 2>/dev/null ;;
- *.zip) unzip -l $1 2>/dev/null ;;
- *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` ; # groff src
- FILE=`echo $FILE | cut -d ' ' -f 2`
- if [ "$FILE" = "troff" ]; then
- groff -s -p -t -e -Tascii -mandoc $1
- fi ;;
- *) cat $1 2>/dev/null ;;
- # *) FILE=`file -L $1` ; # Check to see if binary, if so -- view with 'strings'
- # FILE1=`echo $FILE | cut -d ' ' -f 2`
- # FILE2=`echo $FILE | cut -d ' ' -f 3`
- # if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
- # -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
- # strings $1
- # fi ;;
- esac
-
-
-
-
- 6. U┐ywanie bzip2 z emacs-em
-
- 6.1. Zmaina emacs-a dla wszystkich:
-
- Napisalem ten patch do jka-compr.el kt≤ry dodaje bzip2 do auto-
- compression-mode.
-
- Disclaimer: Spawdzi│em go tylko z emacs-20.2, ale nie mam powod≤w by
- s▒dziµ, ┐e podobne postΩpowanie nie bΩdzie dzia│aµ z innymi wersjami.
-
- By go u┐yµ,
-
- 1. Przejd╝ do katalogu ╝r≤d│owego emacs-20.2/lisp (tam gdzie go
- roztarowa│e╢)
-
- 2. Wstaw ten patch do pliku jka-compr.el.diff ( powinien byµ sam w
- tym pliku ;).
-
- 3. Wykonaj
-
-
- patch < jka-compr.el.diff
-
-
-
-
- 4. Wystartuj emacs-a, i wykonaj
-
-
- M-x byte-compile-file jka-compr.el
-
-
-
-
- 5. Wyjd╝ z emacs-a.
-
- 6. Przenie╢ pierwotny jka-compr.elc w bezpieczne miejsce gdyby by│y
- bug-i.
-
- 7. Zast▒p go new jka-compr.elc.
-
- 8. Baw siΩ dobrze!
-
-
- --- jka-compr.el Sat Jul 26 17:02:39 1997
- +++ jka-compr.el.new Thu Feb 5 17:44:35 1998
- @@ -44,7 +44,7 @@
- ;; The variable, jka-compr-compression-info-list can be used to
- ;; customize jka-compr to work with other compression programs.
- ;; The default value of this variable allows jka-compr to work with
- -;; Unix compress and gzip.
- +;; Unix compress and gzip. David Fetter doda│ bzip2 support :)
- ;;
- ;; If you are concerned about the stderr output of gzip and other
- ;; compression/decompression programs showing up in your buffers, you
- @@ -121,7 +121,9 @@
-
-
- ;;; I have this defined so that .Z files are assumed to be in unix
- -;;; compress format; and .gz files, in gzip format.
- +;;; compress format; and .gz files, in gzip format, and .bz2 files,
- +;;; in the snappy new bzip2 format from http://www.muraroa.demon.co.uk.
- +;;; Keep up the good work, people!
- (defcustom jka-compr-compression-info-list
- ;;[regexp
- ;; compr-message compr-prog compr-args
- @@ -131,6 +133,10 @@
- "compressing" "compress" ("-c")
- "uncompressing" "uncompress" ("-c")
- nil t]
- + ["\\.bz2\\'"
- + "bzip2ing" "bzip2" ("")
- + "bunzip2ing" "bzip2" ("-d")
- + nil t]
- ["\\.tgz\\'"
- "zipping" "gzip" ("-c" "-q")
- "unzipping" "gzip" ("-c" "-q" "-d")
-
-
-
-
- 6.2. Zmiana emacs-a dla pojedy±czego u┐ytkownika:
-
- PodziΩkowania za to male┐▒ siΩ Ulrik-owi Dickow-owi, ukd@kampsax.dk
- <mailto:ukdATkampsax.dk>, programi╢cie systemowemu w Kampsax
- Technology:
-
- Aby m≤c u┐ywaµ bzip2 automatycznie gdy nie jeste╢ sysadmin-em, po
- prostu dodaj co nastΩpuje do swojego pliku .emacs.
-
-
-
-
-
-
- ;; Automatic (un)compression on loading/saving files (gzip(1) and similar)
- ;; We start it in the off state, so that bzip2(1) support can be added.
- ;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.
- ;; Should work with many older and newer Emacsen too. No warranty though.
- ;;
- (if (fboundp 'auto-compression-mode) ; Emacs 19.30+
- (auto-compression-mode 0)
- (require 'jka-compr)
- (toggle-auto-compression 0))
- ;; Now add bzip2 support and turn auto compression back on.
- (add-to-list 'jka-compr-compression-info-list
- ["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"
- "zipping" "bzip2" ()
- "unzipping" "bzip2" ("-d")
- nil t])
- (toggle-auto-compression 1 t)
-
-
-
-
- 7. U┐ywanie bzip2-a z wu-ftpd
-
- PodziΩkowania dla Arnaud Launay za tego oszczΩdzacza bandwidth-u. To
- co nastΩpuje powinno siΩ znale╝µ w /etc/ftpconversions aby wykonywaµ
- kompresjΩ i dekompresjΩ on-the-fly za pomoc▒ bzip2. Upewnij siΩ, ┐e
- ╢cie┐ki takie jak (like /bin/compress) s▒ poprawne.
-
-
- :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
- : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
- :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
- : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
- :.bz2: : :/bin/bzip2 -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:BUNZIP2
- : : :.bz2:/bin/bzip2 -9 -c %s:T_REG:O_COMPRESS:BZIP2
- : : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
- : : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
- : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
- : : :.tar.bz2:/bin/tar -c -y -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+BZIP2
-
-
-
-
- 8. U┐ycie bzip2 z grep-em
-
- Ten u┐ytek, kt≤ry nazwa│em bgrep, jest niewielk▒ modyfikacj▒ zgrep
- kt≤ry jest dostarczany z Linux-em. Mo┐na go u┐ywaµ do grep-owania
- plik≤w bez bunzip2-owania ich najpierw.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #!/bin/sh
-
- # bgrep -- a wrapper around a grep program that decompresses files as needed
- PATH="/usr/bin:$PATH"; export PATH
-
- prog=`echo $0 | sed 's|.*/||'`
- case "$prog" in
- *egrep) grep=${EGREP-egrep} ;;
- *fgrep) grep=${FGREP-fgrep} ;;
- *) grep=${GREP-grep} ;;
- esac
- pat=""
- while test $# -ne 0; do
- case "$1" in
- -e | -f) opt="$opt $1"; shift; pat="$1"
- if test "$grep" = grep; then # grep is buggy with -e on SVR4
- grep=egrep
- fi;;
- -*) opt="$opt $1";;
- *) if test -z "$pat"; then
- pat="$1"
- else
- break;
- fi;;
- esac
- shift
- done
-
- if test -z "$pat"; then
- echo "grep through bzip2 files"
- echo "usage: $prog [grep_options] pattern [files]"
- exit 1
- fi
-
- list=0
- silent=0
- op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
- case "$op" in
- *l*) list=1
- esac
- case "$op" in
- *h*) silent=1
- esac
-
- if test $# -eq 0; then
- bzip2 -cd | $grep $opt "$pat"
- exit $?
- fi
-
- res=0
- for i do
- if test $list -eq 1; then
- bzip2 -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i
- r=$?
- elif test $# -eq 1 -o $silent -eq 1; then
- bzip2 -cd "$i" | $grep $opt "$pat"
- r=$?
- else
- bzip2 -cd "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
- r=$?
- fi
- test "$r" -ne 0 && res="$r"
- done
- exit $res
-
-
- 9. U┐ywanie bzip2-a z Netscape-m pod X-ami.
-
- tenthumbs@cybernex.net pisze:
-
-
- Znalaz│em spos≤b aby spowodowaµ ┐eby Linux-owy Netscape u┐ywa│ bzip2-a
- do Content-Encoding tak jak u┐ywa gzip-a. Dodaj to do $HOME/.Xdefaults
- lub $HOME/.Xresources
-
- U┐ywam opcji -s poniewa┐ wolΩ straciµ trochΩ z szybko╢ci dekompresji
- na korzy╢µ zu┐ycia RAM-u. Mo┐n pomin▒µ t▒ opcjΩ, je╢li kto╢ tak chce.
-
-
-
- Netscape*encodingFilters: \
- x-compress : : .Z : uncompress -c \n\
- compress : : .Z : uncompress -c \n\
- x-gzip : : .z,.gz : gzip -cdq \n\
- gzip : : .z,.gz : gzip -cdq \n\
- x-bzip2 : : .bz2 : bzip2 -ds \n
-
-
-
-
- 10. U┐ycie bzip2-a do rekompresji plik≤w skompresowanych w innych
- formatach
-
- Ten program w perl-u pobiera plik skompresowany w innych formatach
- (.tar.gz, .tgz. .tar.Z, and .Z ) i przepakowuje je dla lepszej
- kompresji. Kod ┐r≤d│owy w perl-u ma wiele porz▒dnej dokumentacji
- dotycz▒cej tego co robi i jak to robi co robi.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #!/usr/bin/perl -w
-
- #######################################################
- # #
- # Ten program pobiera pliki skompresowane programami #
- # compress i gzip w aktualnym katalogu i zamienia je #
- # do formatu bzip2. Obs│uguje rozdszerzenie .tgz w #
- # prawid│owy spos≤b, tworz▒c plik .tar.bz2. #
- # #
- #######################################################
- $counter = 0;
- $saved_bytes = 0;
- $totals_file = '/tmp/machine_bzip2_total';
- $machine_bzip2_total = 0;
-
- while(<*[Zz]>) {
- next if /^bzip2-0.1pl2.tar.gz$/;
- push @files, $_;
- }
- $total = scalar(@files);
-
- foreach (@files) {
- if (/tgz$/) {
- ($new=$_) =~ s/tgz$/tar.bz2/;
- } else {
- ($new=$_) =~ s/\.g?z$/.bz2/i;
- }
- $orig_size = (stat $_)[7];
- ++$counter;
- print "Repacking $_ ($counter/$total)...\n";
- if ((system "gzip -cd $_ |bzip2 >$new") == 0) {
- $new_size = (stat $new)[7];
- $factor = int(100*$new_size/$orig_size+.5);
- $saved_bytes += $orig_size-$new_size;
- print "$new is about $factor% of the size of $_. :",($factor<100)?')':'(',"\n";
- unlink $_;
- } else {
- print "Arrgghh! Something happened to $_: $!\n";
- }
- }
- print "You've ",
- ($saved_bytes>=0)?"saved":"lost",
- " $saved_bytes bytes of storage space :",
- ($saved_bytes>=0)?")":"(", "\n";
-
- unless (-e '/tmp/machine_bzip2_total') {
- system ('echo "0" >/tmp/machine_bzip2_total');
- system ('chmod', '0666', '/tmp/machine_bzip2_total');
- }
-
-
- chomp($machine_bzip2_total = `cat $totals_file`);
- open TOTAL, ">$totals_file"
- or die "Can't open system-wide total: $!";
- $machine_bzip2_total += $saved_bytes;
- print TOTAL $machine_bzip2_total;
- close TOTAL;
-
- print "That's a machine-wide total of ",`cat $totals_file`," bytes saved.\n";
-
-
-
-
-
-
-
-